// 类的只读属性

export {} // 确保跟其他示例没有成员冲突

class Person {
    public name: string
    private age: number
    // 只读属性可以在类型声明的时候可以通过等号初始化 
    // 也可以构造函数中初始化  两者选其一
    // 只读属性不管是在内部还是外部都不允许被修改
    protected readonly gender: boolean
    constructor (name: string, age: number) {
        this.name = name
        this.age = age
        this.gender = true
    }

    sayHi (msg: string): void{
        console.log(`I am ${name}, ${msg}`);
        console.log(this.age);
        
    }
}

const tom = new Person('tom', 18)
console.log(tom.name);
